Шаг 11. Отправляем изменения в удалённый репозиторий
Настало время отправить наши изменения в удалённый репозиторий. Для этого существует команда git push. Но если мы сейчас её пропишем, то получим сообщение об ошибке.
Так происходит, потому что на удалённом репозитории ещё не существует ветки main, да и вообще там пока что нет никакой ветки. Поэтому, когда мы первый раз отправляем изменения, нам нужно использовать дополнительные опции, в которые мы передадим название ветки для последующей её отправки в удалённый репозиторий. Сразу отметим, что далее можно будет просто использовать команду git push без всяких опций.
Важно: у команды git push есть опция --force (сокращённо -f), которая принудительно отправляет изменения в удалённый репозиторий, игнорируя многие предупреждения и ошибки. Старайтесь её не использовать. Пытайтесь исправить проблему, из-за которой изменения не хотят отправляться на удалённый репозиторий. Бывают исключения, при которых опция нужна, но в этот момент вы должны осознавать, что делаете. Бездумное использование этой опции может привести к непоправимым последствиям.
Для первой отправки изменений пропишем команду вместе с опциями git push --set-upstream origin main. Но чаще всего используют сокращённую версию — git push -u origin main. То есть опция --set-upstream заменяется сокращённой -u. Пропишем сокращённую версию и нажмём Enter.
После ввода команды появилась ошибка, в которой сказано, что нам отказано в доступе. Всё дело в том, что на виртуальной машине мы используем несколько аккаунтов GitHub, и аккаунт для заданий был авторизован раньше, чем тот, который используется для написания демонстраций. Возможно, вы столкнётесь с такой же ошибкой, если будете использовать несколько аккаунтов. Поэтому сейчас разберём, как её решить.
Для начала перейдём на сайт GitHub и авторизуемся, если не авторизованы.
Далее нажмём на мини-иконку профиля и перейдём в раздел Settings.
Потом перейдём в раздел Developer settings.
Затем перейдём в раздел Personal access tokens.
После этого нажмём ссылку Generate new token.
Дальше вас, возможно, попросят ввести пароль от GitHub — вводим и идём дальше. После ввода пароля нас перекинет на страницу с созданием токена.
В поле Note укажите, для чего создаётся этот токен. Мы напишем For access. Чуть ниже в поле Expiration нужно выбрать, сколько будет действовать токен. Желательно установить время действия, но мы немного ленивые, поэтому выберем значение No expiration, что означает без ограничений по времени. В разделе Select scopes нужно выбрать, к чему получит доступ пользователь, у которого будет данный токен. Устанавливаем флажки напротив repo, admin: repo_hook и delete_repo. Далее жмём кнопку Generate token. Вас перебросит на страницу с токеном. Пока что оставим его в покое и пойдём дальше — он понадобится нам чуть позже.
Теперь перейдём на локальном устройстве в раздел «Управление учётными данными Windows».
Далее нажмём кнопку «Добавить общие учётные данные».
В открывшемся окне нужно заполнить поля. В поле «Адрес в Интернете или сети» напишите git:https://github.com. В имя пользователя вставьте, то, что вводите при авторизации на GitHub, а паролем будет тот самый токен, который мы получили ранее. Когда всё заполните, нажмите кнопку ОК.
Раздел «Диспетчер учётных данных» можно закрыть, он нам больше не понадобится. Вернёмся снова в Git Bash: повторно пропишем команду git push -u origin main и нажмём Enter.
Теперь всё хорошо, ошибки больше нет. Наша ветка с коммитом отправилась в удалённый репозиторий. Перейдём в него, чтобы в этом убедиться.
Основная часть демонстрации завершена. В следующих шагах будут разобраны более редкие кейсы, которые могут вам пригодиться на работе.